Method for recording events in an IP network

ABSTRACT

The present invention relates to a method for capturing call events and other information in a platform independent way. The method includes generating call event records in response to a SIP call events. A call event file is created that includes all the call event records collected by a server over a predetermined period of time. The call event file is an XML document that includes generic, uniformly formatted records that can be read by any network device equipped with an XML parser. XML documents include embedded instructions that enable a receiving computer to decode the records without needing a special proprietary interface.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates generally to telecommunications systems, and particularly to recording call event records in an IP network.

[0003] 2. Technical Background

[0004] Telephony over the Internet is rapidly becoming a reality. Features that callers have come to expect from circuit switched systems are also considered essential for IP networks. One approach that is being considered to provide the system features needed to create and terminate calls in an IP network involves the Session Initiation Protocol (SIP).

[0005] SIP is an application-layer signaling protocol that has been developed to create, modify, and terminate sessions having one or more users. These sessions include Internet telephone calls, multi-media conferences, and multi-media distribution. SIP functionality is typically resident on application servers. SIP servers are configured to provide telephonic services, and process call event information. Because vendors have developed their own custom SIP application programs, call events and telephonic services are processed by each vendor's application server in a proprietary way. Unfortunately, when a network includes elements provided by a multiplicity of vendors, it becomes necessary to accommodate a variety of proprietary interfaces that enable the devices to transmit and receive call event information, billing information, monitoring information, fraud prevention data and other data.

[0006] What is needed is a platform independent method for capturing SIP related events and other data in a uniform manner. Preferably, the system and method will be extensible, providing embedded information that will enable a receiving computer to read the generic, uniformly formatted records without needing a special proprietary interface.

SUMMARY OF THE INVENTION

[0007] The present invention relates to a platform independent method for capturing SIP related events and other data in a uniform manner. The method and system of the present invention is extensible. The method of the present invention produces generic, uniformly formatted records that can be read by a receiving computer without needing a special proprietary interface.

[0008] One aspect of the present invention is a method for capturing call event data in a telecommunications network. The method includes generating at least one call event record in response to at least one event. An XML call event file is created that includes the at least one call event record.

[0009] In another aspect, the present invention includes a computer readable medium that can be used to direct a Session Initiation Protocol (SIP) server computer to function in a specified manner. The computer readable medium includes a SIP application layer software module. The SIP application layer software module is executable by the SIP server computer to provide SIP functionality. A call event record module is coupled to the SIP application layer software module. The call event record module is configured to create at least one call event record in response to at least one event. An XML processor module is coupled to the call event record module. The XML processor module is configured to create an XML call event file. The XML call event file includes the at least one call event record.

[0010] In another aspect, the present invention includes a set of application program interfaces embodied on a computer readable medium for execution on a computer. The set of application program interfaces includes a first interface that receives an event identifier and returns a call event record. The set of interfaces includes a second interface that receives a set of call event records and returns a call event file. The call event file includes the set of call event records. The call event file is an XML document written using the Extensible Markup Language (XML).

[0011] In another aspect, the present invention includes a set of application program interfaces embodied on a computer readable medium for execution on a Session Initiation Protocol (SIP) server computer in conjunction with a SIP application layer software module that provides SIP functionality. The set of application program interfaces includes a first interface that receives a SIP event identifier and returns a call event record. The set of interfaces includes a second interface that receives a set of call event records and returns a call event file. The call event file includes the set of call event records. The call event file is written using the Extensible Markup Language (XML) and the call event file is an XML document.

[0012] In another aspect, the present invention includes a communications network for establishing a communications session between a first client and a second client. The communications network includes at least one Session Initiation Protocol (SIP) server computer. The SIP server computer includes a first call event record module configured to create a call event record corresponding to an event, and a first XML processor module configured to create a first XML call event file, the first XML call event file including the call event record. At least one network system is coupled to the at least one SIP server computer. The at least one network system includes a second XML processor module, whereby the at least one network system can read the first XML call event file.

[0013] In another aspect, the present invention includes a computer-readable medium having stored thereon a data structure formatted as an XML document file. The data structure includes a server identifier section including information identifying the server that created the XML document file, a SIP message type section, and a SIP event section including information relating to a SIP message event.

[0014] In another aspect, the present invention includes a computer readable medium having computer executable instructions for performing a method. The method includes the steps of: generating at least one call event record in response to at least one event; and, creating an XML call event file including the at least one call event record.

[0015] Additional features and advantages of the invention will be set forth in the detailed description which follows, and in part will be readily apparent to those skilled in the art from that description or recognized by practicing the invention as described herein, including the detailed description which follows, the claims, as well as the appended drawings.

[0016] It is to be understood that both the foregoing general description and the following detailed description are merely exemplary of the invention, and are intended to provide an overview or framework for understanding the nature and character of the invention as it is claimed. The accompanying drawings are included to provide a further understanding of the invention, and are incorporated in and constitute a part of this specification. The drawings illustrate various embodiments of the invention, and together with the description serve to explain the principles and operation of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

[0017]FIG. 1 is a block diagram of a communications network for establishing a communications sessions between a first user and a second user in accordance with the present invention;

[0018]FIG. 2 is a block diagram of a SIP server in accordance with the present invention;

[0019]FIG. 3 is a diagrammatic depiction of the structure of a Call Event Record XML file; and

[0020]FIG. 4 is a chart showing a method for recording call events in accordance with the present invention.

DETAILED DESCRIPTION

[0021] Reference will now be made in detail to the present exemplary embodiments of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts. An exemplary embodiment of the communications network of the present invention is shown in FIG. 1, and is designated generally throughout by reference numeral 10.

[0022] In accordance with the invention, the present invention relates to a method for capturing call related events and messages in a telecommunications network. The method includes the step of generating a call event record in response to a call related event. A call event file is created that includes the call event record. The call event file is an XML document file. Thus, the method of the present invention is extensible and platform independent. The method captures call related SIP events and other data such that any application server can process the data in a uniform way. The present invention provides a method for providing generic, uniformly formatted records that can be read by any network device. The system and method of the present invention includes embedded instructions that enable a receiving computer to decode the records without needing a special proprietary interface.

[0023] As embodied herein, and depicted in FIG. 1, a block diagram of a communications network for establishing a communications sessions between a first client and a second client in accordance with the present invention is disclosed. IP network 10 includes source client 12 coupled to SIP proxy server (SPS)14. Client 12 is referred to as a source client because it is the originator of the session participation request. Server 14 is coupled to SIP redirect server (RS) 16, destination client 18 and network management system (NMS)20. Those of ordinary skill in the art will recognize that FIG. 1 is merely a representative example. The present invention supports networks including a multiplicity of devices such as voice mail servers, conferencing servers and gateway devices.

[0024] By way of example, source client 12 initiates a call attempt to destination client 18 by transmitting an INVITE request to SPS 14. SPS 14 acts as a proxy by relaying the INVITE message to client 18. If client 18 is available, client 18 transmits an OK message to client 12 via SPS 14. On the other hand, if SPS 14 does not recognize the IP address of client 18, SPS 14 may forward an INVITE message to RS 16. Subsequently, SPS 14 receives an alternative IP address for destination client 18 and provides that address to source client 12. Client 12 retransmits an INVITE message to client 18 using the address provided by RS 16. The above described transactions are conducted using SIP request messages and SIP response messages which are also referred to as call events. The application servers record each call event in a call event record. All of the call event records produced over a predetermined amount of time are compiled in a Call Event Record file (CER file). The CER file is subsequently transmitted to NMS 20. Network status changes, fault conditions, and billing data, in addition to call event records can also be reported to NMS 20 via the CER files. In this way, billing, trouble-shooting, testing, and other back office functions resident in NMS 20 have access to the CER files.

[0025] As embodied herein, and depicted in FIG. 2, a block diagram of SIP server 100 in accordance with the present invention is disclosed. Server 100 includes SIP application software module 104 disposed in the memory of server computer 102. The memory of server computer 102 also includes call event record module 106 and other application software modules 110. SIP application software 104 provides SIP functionality. Call Event Record module 106 creates call event records in response to SIP call events or other events. XML processor 108 reads XML documents providing access to their content and structure. XML processor 108 does its work on behalf of application software modules. SIP application software modules 104 disposed in SPS 14 and RS 16, respectively, can be written as proprietary application software on different hardware platforms as long as each server includes an XML processor.

[0026] Referring back to FIG. 2, module 104, module 106, module 108, and modules 110 work together by way of a set of application program interfaces. One important interface receives call event information from SIP module 104 and provides it to Call Event Record module 106. Another important interface receives a set of call event records from Call Event Record module 106 and returns a Call Event Record (CER) file from module 108. The CER file includes the set of call event records collected by module 16 over a predetermined period of time.

[0027] As embodied herein, and depicted in FIG. 3, a diagrammatic depiction of the structure of CER file 300 in accordance with the present invention is disclosed. The CER file is an XML document. As discussed above, the XML document is the data exchange mechanism between different proprietary systems—whether they be applications, databases, or browsers. XML documents include storage units known as entities which contain parsed data and unparsed data. Parsed data includes “markup,” which is used to encode a description of the documents storage layout and logical structure. The self describing feature of XML is one of its most important attributes—extensibility. When the application produces data, the XML processor is called to create an XML document having specific “tags.” A tag is a string of unparsed data bracketed by delimiting punctuation. The XML processor in the receiving server parses the received XML document to determine the storage layout and logical structure of the XML document. However, the interpretation of the data is left to the application that calls XML processor 108.

[0028] Referring back to FIG. 3, CER file 300 has the following structure. It includes an XML document type declaration (DTD) section 302, server information section 304, SIP message type section 306, and event information section 308. DTD 302 provides a way of capturing the rules a designer adds to extend the core rules of XML syntax to thereby create a vocabulary to describe a particular event or situation. DTD section 302 also provides a way for an XML processor to unambiguously validate a particular XML document. DTD 302 provides data to describe the data in the tags. They describe the relationship between the tags found in the document, what attributes the tags are supposed to have, what attributes are default, and what values are mandatory. The XML processor module interprets DTD 302 accompanying the received XML document before providing the data to the application program.

[0029] Server information section 304 identifies the creator of CER file 300. This section appears only once in CER file 300. Since a particular server may provide specific services such as conferencing, instant messaging (IM), or voice mail, the service description as well as vendor information is provided by this section.

[0030] SIP message type section 306 appears for each call event record. This section 306 includes a message identifier field that identifies the exact type of message, e.g., whether it is an INVITE or a 200 OK message. SIP message type section 306 also includes a CALL-ID field which provides the CALL-ID header associated with a particular SIP message. SIP message type section 306 includes a service ID field that uniquely identifies the service instance associated with the SIP message. For example, if the application server is providing conferencing services, the service ID field identifies the particular conference corresponding to the SIP message. This allows one to obtain all messages exchanged during a specific conference within a specific time period. In another example, if the server is a voice mail system, the service ID would identify a particular voice mail box. In yet another example, the service ID would link together all messages and events for a given call established by a proxy server. SIP message type section 306 also includes a To/From field that records the IP address and port number of both the originating and receiving servers. In another embodiment, only one or the other will be present in this field. Finally, SIP message type section 306 includes an “other messages” field. This field records other portions of a SIP message deemed necessary depending on the type of server making the call event record. This information may include additional headers or it may be the actual message body of the SIP message.

[0031] CER file 300 also includes an Event Information Section 308 for each record. Event Information Section 308 records other events encountered in processing a particular SIP message. These other events include “INVITE TIMEOUT,” “NON-INVITE TIMEOUT,” “CONNECTION ERROR,” “AUTHENTICATION PERFORMED,” “FIND-ME FEATURE INVOKED,” “DAP query sent,” and etc. There may also be additional fields containing detailed information about an event. Of course, any modifications to this field will be defined in the DTD section.

[0032] As embodied herein, and depicted in FIG. 4, a chart showing a method for recording call events in accordance with the present invention is disclosed. In step 400, the application server creates CER file 300. The length of the file is configurable, that is, call event records and other data are written into the CER files for a predetermined period of time. After the time period elapses, a new CER file is started and the old file is archived by NMS 20. In step 302 the application server determines if there is a call event, such as an INVITE, or some other such SIP message event. If so, the application server creates a call event record. Subsequently, the XML processor is called and the call event record is written in the CER file using XML. In step 308, the application server determines if the configurable file time period has elapsed. If not, the process flow returns to step 302 and the application server waits for another call event to record. If the time period has elapsed, the CER XML document file is transmitted to NMS 20 (See FIG. 1).

[0033] Those of ordinary skill in the art will recognize that CER files can be employed for any events occurring within network 10. Calls placed between all or any combinations of SIP-phones, enterprise gateways, network gateways, DAL gateways, INCP gateways, SIP-voicemail servers, and SIP conferencing servers may employ the present invention. Those of ordinary skill in the art will also recognize that the present invention can be employed using any suitable type of transport network. Further, the present invention is applicable to any type of session that may be established including, but not limited to, telephony, video, audio, instant messaging, and etcetera. It is also contemplated that the present invention may be employed for billing, monitoring, management, or for any of a wide variety of services performed by the network.

[0034] It will be apparent to those skilled in the art that various modifications and variations can be made to the present invention without departing from the spirit and scope of the invention. Thus, it is intended that the present invention cover the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents. 

What is claimed is:
 1. A method for capturing call event data in a telecommunications network, the method comprising: creating an XML call event file including a server information section, at least one SIP message section, and at least one call event section; generating at least one call event record in response to at least one event; and storing the at least one call event record in either the at least one SIP message section, or the at least one call event section.
 2. The method of claim 1, wherein the method is performed using a telecommunications network device.
 3. The method of claim 2, wherein the telecommunications network device is a SIP server computer.
 4. The method of claim 3, wherein the SIP server computer is a SIP proxy server.
 5. The method of claim 3, wherein the SIP server computer is a SIP redirect server.
 6. The method of claim 2, wherein the telecommunications network device is a network management system.
 7. The method of claim 6, wherein the network management system includes a database.
 8. The method of claim 6, wherein the network management system includes a LAN.
 9. The method of claim 2, wherein the telecommunications network device is a SIP client device.
 10. The method of claim 1, wherein the at least one event includes a SIP invite request.
 11. The method of claim 1, wherein the at least one event includes a response to a SIP invite request.
 12. The method of claim 1, wherein the at least one event includes a SIP redirection message.
 13. The method of claim 1, wherein the at least one event includes a SIP proxying request.
 14. The method of claim 1, wherein the at least one event includes a SIP proxying response message.
 15. The method of claim 1, wherein the at least one event includes a SIP error message.
 16. The method of claim 1, wherein the at least one event includes a network fault condition.
 17. The method of claim 1, wherein the at least one event includes the transmission or reception of billing information.
 18. The method of claim 1, wherein the at least one event is an event related to network monitoring.
 19. The method of claim 1, wherein the XML document includes a server information tag that identifies an originating server.
 20. The method of claim 1, wherein the XML document includes a SIP message section identifying whether the event is a SIP request or a SIP response.
 21. The method of claim 20, wherein the SIP message section includes a service identifier field, the server identifier field uniquely identifying the service associated with the SIP message.
 22. The method of claim 20, wherein the SIP message section includes a send/receive field that includes IP addresses associated with a caller and a callee.
 23. The method of claim 20, wherein the SIP message section includes an other message content field that is used to accommodate any additional information.
 24. The method of claim 1, wherein the XML document includes an event field identifying the event.
 25. The method of claim 1, wherein the XML document includes a document type declaration section that provides information required by a receiving computer to properly decode the XML document.
 26. A computer readable medium that can be used to direct a Session Initiation Protocol (SIP) server computer to function in a specified manner, the computer readable medium comprising: a SIP application layer software module, the SIP application layer software module being executable by the SIP server computer to provide SIP functionality; a call event record module coupled to the SIP application layer software module, the call event record module being configured to create at least one call event record in response to at least one event; and an XML processor module coupled to the call event record module, the XML processor module being configured to create an XML call event file, the XML call event file including the at least one call event record.
 27. The medium of claim 26, wherein the SIP server computer is configured as a SIP proxy server.
 28. The medium of claim 26, wherein the SIP server computer is configured as a SIP redirect server.
 29. The medium of claim 26, wherein the at least one event includes a SIP invite request.
 30. The medium of claim 26, wherein the at least one event includes a response to a SIP invite request.
 31. The medium of claim 26, wherein the at least one event includes a SIP redirection message.
 32. The medium of claim 26, wherein the at least one event includes a SIP proxying request.
 33. The medium of claim 26, wherein the at least one event includes a SIP proxying response message.
 34. The medium of claim 26, wherein the at least one event includes an error message.
 35. The medium of claim 26, wherein the at least one event includes a network fault condition.
 36. The medium of claim 26, wherein the at least one event includes the transmission or reception of billing information.
 37. The medium of claim 26, wherein the at least one event is an event related to network monitoring.
 38. The medium of claim 26, wherein the XML document includes a server information tag that identifies an originating server.
 39. The medium of claim 26, wherein the XML document includes a SIP message section identifying whether the event is a SIP request or a SIP response.
 40. The medium of claim 39, wherein the SIP message section includes a service identifier field, the server identifier field uniquely identifying the service associated with the SIP message.
 41. The medium of claim 39, wherein the SIP message section includes a send/receive field that includes IP addresses associated with a caller and a callee.
 42. The medium of claim 39, wherein the SIP message section includes an other message content field that is used to accommodate any additional information.
 43. The medium of claim 26, wherein the XML document includes an event field identifying the event.
 44. The medium of claim 26, wherein the XML document includes a document type declaration section that provides information required by a receiving computer to properly decode the XML document.
 45. A set of application program interfaces embodied on a computer readable medium for execution on a computer, the set of application program interfaces comprising: a first interface that receives an event identifier and returns a call event record; and a second interface that receives a set of call event records and returns a call event file, the call event file including the set of call event records, the call event file being written using the Extensible Markup Language (XML), whereby the call event file is an XML document.
 46. The program interfaces of claim 45, wherein the at least one event includes a SIP invite request.
 47. The program interfaces of claim 45, wherein the at least one event includes a response to a SIP invite request.
 48. The program interfaces of claim 45, wherein the at least one event includes a SIP redirection message.
 49. The program interfaces of claim 45, wherein the at least one event includes a SIP proxying request.
 50. The program interfaces of claim 45, wherein the at least one event includes a SIP proxying response message.
 51. The program interfaces of claim 45, wherein the at least one event includes a SIP error message.
 52. The program interfaces of claim 45, wherein the at least one event includes a network fault condition.
 53. The program interfaces of claim 45, wherein the at least one event includes the transmission or reception of billing information.
 54. The program interfaces of claim 45, wherein the at least one event is an event related to network monitoring.
 55. The program interfaces of claim 45, wherein the XML document includes a server information tag that identifies an originating server.
 56. The program interfaces of claim 45, wherein the XML document includes a SIP message section identifying whether the event is a SIP request or a SIP response.
 57. The program interfaces of claim 45, wherein the XML document includes an event field identifying the event.
 58. The program interfaces of claim 45, wherein the XML document includes a document type declaration section that provides information required by a receiving computer to properly decode the XML document.
 59. A set of application program interfaces embodied on a computer readable medium for execution on a Session Initiation Protocol (SIP) server computer in conjunction with a SIP application layer software module that provides SIP functionality, the set of application program interfaces comprising: a first interface that receives a SIP event identifier and returns a call event record; and a second interface that receives a set of call event records and returns a call event file, the call event file including the set of call event records, the call event file being written using the Extensible Markup Language (XML), whereby the call event file is an XML document.
 60. A communications network for establishing a communications session between a first client and a second client, the communications network comprising: at least one Session Initiation Protocol (SIP) server computer, the SIP server computer including a first call event record module configured to create a call event record corresponding to an event, and a first XML processor module configured to create a first XML call event file, the first XML call event file including the call event record; and at least one network system coupled to the at least one SIP server computer, the at least one network system including a second XML processor module, whereby the at least one network system can read the first XML call event file.
 61. The network of claim 60, wherein the at least one SIP server computer includes at least one SIP proxy server and at least one SIP redirect server.
 62. The network of claim 61, wherein the at least one SIP proxy server includes a plurality of SIP proxy servers, at least one of the plurality of SIP proxy servers being manufactured by a different manufacturer.
 63. The network of claim 61, wherein the at least one SIP redirect server includes a plurality of SIP redirect servers, at least one of the plurality of SIP redirect servers being manufactured by a different manufacturer.
 64. The network of claim 61, wherein the at least one SIP proxy server and the at least one SIP redirect server are manufactured by different manufacturers.
 65. The network of claim 60, wherein the at least one SIP server and the at least one network system are manufactured by different manufacturers.
 66. The network of claim 60, wherein the at least one network system includes a second call event record module configured to create a call event record corresponding to an event, the second XML processor module configured to create a second XML call event file, the second XML call event file including at least one call event record.
 67. The network of claim 66, wherein the first XML processor module is configured to can decode the second XML call event file.
 68. The network of claim 67, wherein the first XML call event file includes a document type declaration section that provides information required by the second XML processor module to read the first XML call event file.
 69. The network of claim 67, wherein the second XML call event file includes a document type declaration section that provides information required by the first XML processor module to read the second XML call event file.
 70. The network of claim 66, wherein both the first XML call event file and the second XML call event file include a server information tag that identifies an originating server.
 71. The network of claim 66, wherein both the first XML call event file and the second XML call event file include a SIP message section identifying whether the event is a SIP request or a SIP response.
 72. The network of claim 66, wherein both the first XML call event file and the second XML call event file include an event field identifying the event.
 73. A computer-readable medium having stored thereon a data structure formatted as an XML document file, the data structure comprising: a server identifier section including information identifying the server that created the XML document file; a SIP message type section; and a SIP event section including information relating to a SIP message event.
 74. The data structure of claim 73, wherein the server identifier section includes information identifying the vendor of the server.
 75. The data structure of claim 73, wherein the server identifier section includes the operating system running on the server.
 76. The data structure of claim 73, wherein the XML document is a call event record that includes a plurality of call event records.
 77. The data structure of claim 77, wherein the SIP message section includes a service identifier field, the server identifier field uniquely identifying the service associated each call event record.
 78. The data structure of claim 73, wherein the SIP message section includes a send/receive field that includes IP addresses associated with a caller and a callee for each call event record.
 79. The data structure of claim 73, wherein the SIP message section indicates whether a call event record relates to a SIP request or a SIP response.
 80. The data structure of claim 73, wherein the SIP message section identifies the originator of each call event record contained in the XML document file.
 81. The data structure of claim 73, wherein the SIP message section identifies the receiving party of a call event record pertaining to a SIP message.
 82. The data structure of claim 73, wherein the SIP message section includes a time and date of each call event record contained in the XML document file.
 83. The data structure of claim 73, where the SIP event section identifies the event recorded by each call event record contained in the XML document file.
 84. The data structure of claim 73, wherein the XML document includes a document type declaration section that provides information required by a receiving computer to properly read the XML document.
 85. A computer readable medium having computer executable instructions for performing a method, the method comprising: generating at least one call event record in response to at least one event; and creating an XML call event file including the at least one call event record. 